﻿Imports System.Data
Imports System.Data.OleDb
Imports geraLaudosAutomatico.conexao
Imports System.Text


Public Class autoridadeDAO


    Dim sql As New StringBuilder
    Dim i As Integer

    Public Function getAutoridade(ByVal id_autoridade As Integer) As autoridadeVO

        Dim autoridade As New autoridadeVO
        Dim objConn As New conexao

        sql.Clear()
        sql.Append("SELECT S.*, A.* FROM secao S INNER JOIN autoridade A ON S.id_secao = A.id_secao WHERE ID_AUTORIDADE=@ID_AUTORIDADE")


        Dim oReader As OleDbDataReader

        Try
            Dim oComando As New OleDbCommand(sql.ToString, objConn.abreConexao)
            oComando.Parameters.AddWithValue("@ID_AUTORIDADE", id_autoridade)

            oReader = oComando.ExecuteReader

            While oReader.Read

                autoridade = New autoridadeVO
                autoridade.ID_AUTORIDADE = oReader("ID_AUTORIDADE")
                autoridade.NOME_AUTORIDADE = oReader("NOME_AUTORIDADE")
                autoridade.PREFIXO = oReader("PREFIXO")
                autoridade.SECAO = New secaoVO With {.ID_SECAO = oReader("A.ID_SECAO"), .DESC_SECAO = oReader("DESC_SECAO"), .STATUS = oReader("S.STATUS")}
                autoridade.DATA_CRIACAO = oReader("DATA_CRIACAO")
                autoridade.STATUS = oReader("STATUS")


            End While

            Return autoridade

        Catch ex As Exception
            Throw ex
        Finally
            objConn.fechaConexao()
        End Try

    End Function


    Public Function getAutoridadesAtivasSecao(ByVal id_secao As Integer, ByVal status As Boolean) As Generic.List(Of autoridadeVO)


        Dim autoridade As New autoridadeVO
        Dim objConn As New conexao
        Dim item As New autoridadeVO With {.ID_AUTORIDADE = -1, .NOME_AUTORIDADE = "Selecione"}




        sql.Clear()
        sql.Append("SELECT * FROM AUTORIDADE A WHERE A.ID_SECAO=@ID_SECAO AND A.STATUS=TRUE ORDER BY A.NOME_AUTORIDADE")

        Dim oReader As OleDbDataReader
        Dim lista As New Generic.List(Of autoridadeVO)
        lista.Add(item)



        Try
            Dim oComando As New OleDbCommand(sql.ToString, objConn.abreConexao)

            oComando.Parameters.AddWithValue("@ID_SECAO", id_secao)
            oComando.Parameters.AddWithValue("@STATUS", status)


            oReader = oComando.ExecuteReader

            While oReader.Read

                autoridade = New autoridadeVO
                autoridade.ID_AUTORIDADE = IIf(IsDBNull(oReader("ID_AUTORIDADE")), Nothing, oReader("ID_AUTORIDADE"))
                autoridade.NOME_AUTORIDADE = IIf(IsDBNull(oReader("NOME_AUTORIDADE")), Nothing, oReader("NOME_AUTORIDADE"))
                autoridade.PREFIXO = IIf(IsDBNull(oReader("PREFIXO")), Nothing, oReader("PREFIXO"))
                lista.Add(autoridade)

            End While

            Return lista

        Catch ex As Exception

            Throw ex

        Finally

            objConn.fechaConexao()

        End Try

    End Function

End Class
